package cn.tedu.store.admin.webapi.mapper;


import cn.tedu.store.commons.pojo.admin.entity.Admin;
import cn.tedu.store.commons.pojo.admin.vo.AdminListItemVO;
import cn.tedu.store.commons.pojo.admin.vo.AdminLoginInfoVO;
import cn.tedu.store.commons.pojo.admin.vo.AdminStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AdminMapper {

    /**
     * 添加管理员(注册)
     * @param admin 要添加的管理员信息
     * @return 受影响的行数
     */
    int insert(Admin admin);

    /**
     * 根据id删除管理员
     * @param id 要删除的管理员id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据id修改管理员信息
     * @param admin 要修改的管理员信息
     * @return 受影响的行数
     */
    int updateById(Admin admin);

    /**
     * 统计管理员数量
     * @return 管理员的数量
     */
    int count();
    /**
     * 根据用户名统计数量
     * @param username 查找的用户名
     * @return 统计的数量
     */
    int countByName(String username);

    /**
     * 通过username查询管理员详情(登录验证)
     * @param username 要查询的username
     * @return 查询的结果
     */
    AdminStandardVO getStandardByUsername(String username);

    /**
     * 通过id查询管理员详情(登录验证)
     * @param id 要查询的id
     * @return 查询的结果
     */
    AdminStandardVO getStandardById(Long id);

    /**
     * 根据用户名查询管理员的登录信息
     *
     * @param username 用户名
     * @return 匹配的管理员详情，如果没有匹配的数据，则返回null
     */
    AdminLoginInfoVO getLoginInfoByUsername(String username);

    /**
     * 获取管理员列表
     * @return 所有管理员的信息
     */
    List<AdminListItemVO> list();
}
